const tool = require('./index');
const path = require('path');
var fs = require('fs');
 
//解析需要遍历的文件夹，我这以E盘根目录为例
var filePath = path.resolve('./proto');
tool.config = {
    protoPath: path.join('./', 'proto'),
    toPath:path.join('../../assets/src/lib/net/','protobuf'),
    change: true,     
    protoNames: []
}

/**
 * 文件遍历方法
 * @param filePath 需要遍历的文件路径
 */
 async function fileDisplay(filePath){
    //根据文件路径读取文件，返回文件列表
    fs.readdir(filePath,function(err,files){
        if(err){
            console.warn(err)
        }else{
            //遍历读取到的文件列表
            files.forEach(async function(filename){
                //获取当前文件的绝对路径
                var filedir = path.join(filePath,filename);
                //根据文件路径获取文件信息，返回一个fs.Stats对象
                fs.stat(filedir,async function(eror,stats){
                    if(eror){
                        console.warn('获取文件stats失败');
                    }else{
                        var isFile = stats.isFile();//是文件
                        var isDir = stats.isDirectory();//是文件夹
                        if(isFile){
                            let protoFile = path.basename(filedir);
                            console.log(protoFile);
                            tool.config.protoNames.push(protoFile);
                        }
                        if(isDir){
                            fileDisplay(filedir);//递归，如果是文件夹，就继续遍历该文件夹下面的文件
                        }
                    }
                })
            });
        }
    });
}

console.log(tool.config);

async function run(){
    await fileDisplay(filePath);
    setTimeout(async () => {
        await tool.run();
        await tool.run2();
        await tool.run3();
    }, 1000);
}

run();